home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / tex-k / tex-k-archive.past / tex-k-archive.gz / tex-k-archive / 000543_pete@riese.thi.…i-frankfurt.de_Fri May 6 16:58:25 1994.msg < prev    next >
Internet Message Format  |  1994-10-11  |  4KB

  1. Received: from riese.informatik.uni-frankfurt.de (riese.thi.informatik.uni-frankfurt.de) by cs.umb.edu with SMTP id AA20288
  2.   (5.65c/IDA-1.4.4 for <tex-k@cs.umb.edu>); Fri, 6 May 1994 09:34:16 -0400
  3. Received: from lovelace.informatik.uni-frankfurt.de (lovelace.thi.informatik.uni-frankfurt.de) by riese.informatik.uni-frankfurt.de (4.1/THI-peleuck2.1)
  4.     id AA01462; Fri, 6 May 94 14:58:25 +0200
  5. Date: Fri, 6 May 94 14:58:25 +0200
  6. From: pete@riese.thi.informatik.uni-frankfurt.de (Peter Dyballa)
  7. Content-Transfer-Encoding: binary
  8. Content-Type: text/plain; charset=ISO-8859-1
  9. Message-Id: <9405061258.AA01462@riese.informatik.uni-frankfurt.de>
  10. Received: by lovelace.informatik.uni-frankfurt.de (4.1/SMI-4.1)
  11.     id AA12182; Fri, 6 May 94 14:59:06 +0200
  12. To: tex-k@cs.umb.edu
  13. Subject: Kpathsea 1.8 and dvipsk 5.55a
  14.  
  15. Hello!
  16.  
  17. I had problems with dvipsk 5.519b when PKPATH was not defined. I told that Karl
  18. Berry who wrote I should try to use dvipsk 5.55a, the recent version.
  19.  
  20. I did, and the success is still the same: when PKPATH is empty dvips does not
  21. find any PK file (in a reasonable time).
  22.  
  23. I debugged dvipsk with xxgdb and came soon to line 722 in resident.c which is
  24. reached by checkenv(1), line #829 in dvips.c. Now I present you what xxgdb
  25. states:
  26.  
  27. GDB 4.7, Copyright 1992 Free Software Foundation, Inc...
  28. (xxgdb) define redo
  29. symbol-file dvips
  30. exec-file dvips
  31. end
  32. (xxgdb) define aredo
  33. symbol-file afm2tfm
  34. exec-file afm2tfm
  35. end
  36. (xxgdb) (xxgdb) Breakpoint 1 at 0x1ef80: file resident.c, line 722.
  37. (xxgdb) run
  38. config path:   /usr/local/lib/texmf/dvips
  39. </usr/local/lib/texmf/dvips/config.ps(r)> succeeded
  40. </usr/local/lib/texmf/dvips/config.pscsads(r)> succeeded
  41.  
  42. Breakpoint 1, checkenv (which=1) at resident.c:722
  43. (xxgdb) print pkpath
  44. $1 = 0xe9a68 "/usr/local/tex/lib/fonts/PK/LaserJetIV//"
  45. (xxgdb) print tfmpath
  46. $2 = 0x4d930 "/usr/local/tex/lib/fonts/TFM//"
  47. (xxgdb) print vfpath
  48. $3 = 0x4d958 "/usr/local/tex/lib/fonts/VF//"
  49. (xxgdb) print pictpath
  50. $4 = 0xc220 "/usr/local/lib/texmf/texinput//"
  51. (xxgdb) print headerpath
  52. $5 = 0x441f0 "/usr/local/tex/lib/dvips"
  53. (xxgdb) print figpath
  54. $6 = 0x44218 "/usr/openwin/share/images/PostScript"
  55. (xxgdb) next
  56. (xxgdb) next
  57. (xxgdb) next
  58. (xxgdb) next
  59. (xxgdb) next
  60. (xxgdb) next
  61. (xxgdb) print pkpath
  62. $7 = 0xf7ffffdd ""
  63. (xxgdb) print tfmpath
  64. $8 = 0xf7ffff8e ""
  65. (xxgdb) print vfpath
  66. $9 = 0xf7ffffb7 ""
  67. (xxgdb) print pictpath
  68. $10 = 0xf7fffc4e ".:/usr/local/tex/lib/texinput//:/home/local/tex/inputs:/home/riese/thi/pete/texmacros"
  69. (xxgdb) print headerpath
  70. $11 = 0x441f0 "/usr/local/tex/lib/dvips"
  71. (xxgdb) print figpath
  72. $12 = 0xf7fffc4e ".:/usr/local/tex/lib/texinput//:/home/local/tex/inputs:/home/riese/thi/pete/texmacros"
  73. (xxgdb) 
  74.  
  75. The lines I'm stepping over are those in resident.c:
  76.  
  77.      INIT_PATH (pkpath, true, KPSE_PK_ENVS);
  78.      INIT_PATH (tfmpath, true, KPSE_TFM_ENVS);
  79.      INIT_PATH (vfpath, true, KPSE_VF_ENVS);
  80.      INIT_PATH (pictpath, false, DVIPS_PICT_ENVS);
  81.      INIT_PATH (headerpath, false, DVIPS_HEADER_ENVS);
  82.      INIT_PATH (figpath, false, KPSE_TEX_ENVS);
  83.  
  84. -----------------------------------------------------------------------------
  85. KPSE_PK_ENVS corresponds to "PKFONTS" or "TEXPKS"
  86. KPSE_TFM_ENVS corresponds to "TFMFONTS" or "TEXFONTS"
  87. KPSE_VF_ENVS corresponds to "VFFONTS" or "TEXFONTS"
  88. =============================================================================
  89. The conclusion is: dvips(k) gets configured correctly by parsing the config
  90. files. Then it examines the process environment, heired from the parent shell,
  91. and forgets almost every thing it learned before!
  92.  
  93. This isn't just ridiculous, this _is_ a bug!
  94.  
  95. Of course it's a good idea to be configured for an actual operation by the
  96. environment, but in case the environment does not want to do that job, dvips(k)
  97. does _not_ show a fail-safe behaviour but a fail-erroneous behaviour.
  98.  
  99. The INIT_PATH macro should leave the old contents of a string unchanged when
  100. its corresponding environment variable is not set! This helps at least to save
  101. space in the shell's environment and to spawn a new process
  102.  
  103. Greetings
  104.  
  105. Pete
  106.  
  107. Johann Wolfgang Goethe-Universitdt      Robert-Mayer-Stra_e 11-15      
  108. Fachbereich 20 - Theoretische Informatik  D 60325 Frankfurt am Main    
  109. (Department for Computer Science)      (Federal Republic of Germany)
  110.  
  111. email:pete@thi.informatik.uni-frankfurt.de